Claude Code 代码重构质量提升
所有的代码都值得用 AI 重新重构一遍。无论是刚写完的新代码,还是项目中沉淀多年的老代码,在结构、命名、冗余度上往往都有优化空间。本文介绍两个 Agent Skills——code-simplifier 和 vueuse-functions,让 Claude Code 在编码之后自动完成代码精简和重构,功能不变,质量提升。
- code-simplifier:通用代码简化与重构技能,适用于任何语言和项目
- vueuse-functions:Vue.js / Nuxt 项目专用,自动应用 VueUse 组合式函数替代手写代码
code-simplifier:代码简化专家
简介
code-simplifier 是一个通用代码简化技能,来源于 Anthropic 官方插件。它专注于在不改变代码功能的前提下,提升代码的清晰度、一致性和可维护性。
核心原则:只改变代码怎么写,不改变代码做什么。
安装
npx skills add https://github.com/simonwong/agent-skills --skill code-simplifier
技能主页:https://skills.sh/simonwong/agent-skills/code-simplifier
使用
code-simplifier 支持两种触发方式:
- 自动触发:安装后,Claude 在代码编写或修改后自动介入,无需手动操作
- 手动触发:通过斜杠命令指定目标文件
/code-simplifier src/services/userService.ts
💡指定文件路径
手动调用时传入文件路径,Claude 会针对该文件进行代码简化分析和优化。不传路径时默认处理当前会话中最近修改的代码。
工作机制
code-simplifier 遵循以下流程:
flowchart LR
A[识别修改范围] --> B[分析优化机会]
B --> C[应用优化]
C --> D[验证结果]
| 阶段 | 说明 |
|---|
| 识别修改范围 | 定位当前会话中最近修改过的代码段,默认只处理新写或改动的代码 |
| 分析优化机会 | 检查冗余、过度嵌套、命名不规范等问题,参考项目 CLAUDE.md 编码规范 |
| 应用优化 | 在保持功能不变的前提下简化代码结构,提升可读性和可维护性 |
| 验证结果 | 确认优化后的代码更简洁且保持完整功能 |
优化规则
code-simplifier 遵循明确的优化方向和边界:
会做的事:
| 优化类型 | 说明 |
|---|
| 减少嵌套 | 降低 if/else、循环等不必要的嵌套层级 |
| 消除冗余 | 移除重复代码和无用的抽象层 |
| 改善命名 | 使用更清晰的变量名和函数名 |
| 合并逻辑 | 将分散但相关的代码整合在一起 |
| 清理注释 | 移除描述显而易见逻辑的多余注释 |
| 遵循规范 | 按照项目 CLAUDE.md 中定义的编码标准调整代码 |
不会做的事:
| 限制 | 说明 |
|---|
| 不改变功能 | 所有原有特性、输出和行为保持不变 |
| 不过度压缩 | 避免嵌套三元运算符、密集的单行代码 |
| 不过度抽象 | 不会为一次性操作创建工具函数 |
| 不扩大范围 | 默认只处理当前修改过的代码 |
⚠选择清晰而非简短
code-simplifier 优先选择清晰易读的代码,而非追求最少行数。多条件判断时,偏好 switch 语句或 if/else 链,而非嵌套三元运算符。
实际效果
优化前:
const getStatusText = (status: number) => {
// 获取状态文本
// 根据状态码返回对应的文本
const text = status === 0 ? '待处理' : status === 1 ? '处理中' : status === 2 ? '已完成' : '未知'
return text
}
优化后:
function getStatusText(status: number): string {
switch (status) {
case 0: return '待处理'
case 1: return '处理中'
case 2: return '已完成'
default: return '未知'
}
}
优化点:移除多余注释和临时变量,嵌套三元改为 switch,添加显式返回类型。
vueuse-functions:VueUse 组合式函数助手
简介
vueuse-functions 由 Anthony Fu(Vue/Nuxt 核心团队成员)维护,是 Vue.js / Nuxt 项目的专用技能。VueUse 相当于 Java 生态中的 Hutool / Apache Commons——提供 200+ 个开箱即用的组合式函数,覆盖状态管理、DOM 操作、浏览器 API、网络请求、防抖节流等常见场景。该技能在开发过程中自动识别可以用 VueUse 替代的手写逻辑,用社区验证的方案替代重复实现。
核心理念:优先使用 VueUse,而非手写重复逻辑。
安装
npx skills add https://github.com/antfu/skills --skill vueuse-functions
技能主页:https://skills.sh/antfu/skills/vueuse-functions
💡前置条件
项目需要使用 Vue 3 或 Nuxt 3 及以上版本,并安装 VueUse 依赖:pnpm add @vueuse/core。
使用
vueuse-functions 支持两种触发方式:
- 自动触发:安装后,Claude 在编写 Vue/Nuxt 代码时自动识别可替换为 VueUse 的场景
- 手动触发:通过斜杠命令指定目标文件
/vueuse-functions src/views/dashboard/index.vue
💡指定文件路径
手动调用时传入 Vue 文件路径,Claude 会扫描该文件中可以用 VueUse 组合式函数替代的手写逻辑。
调用规则
vueuse-functions 对每个函数定义了三种调用级别:
| 级别 | 含义 | 示例 |
|---|
| AUTO | 自动应用,无需用户请求 | useLocalStorage、useDark、onClickOutside |
| EXTERNAL | 需要安装额外依赖才能使用 | useAxios、useSortable、useQRCode |
| EXPLICIT_ONLY | 仅在用户明确要求时使用 | toRef、get、set |
ℹAUTO 级别
大多数核心函数都是 AUTO 级别,Claude 会在合适的场景自动推荐使用,无需手动指定。
实际效果
优化前(手写实现):
<script setup lang="ts">
import { ref, onMounted, onUnmounted } from 'vue'
const isDark = ref(false)
const windowWidth = ref(window.innerWidth)
const searchText = ref('')
const debouncedSearch = ref('')
let timer: ReturnType<typeof setTimeout> | null = null
function toggleDark() {
isDark.value = !isDark.value
document.documentElement.classList.toggle('dark', isDark.value)
}
function handleResize() {
windowWidth.value = window.innerWidth
}
function handleSearch(val: string) {
if (timer) clearTimeout(timer)
timer = setTimeout(() => {
debouncedSearch.value = val
}, 300)
}
onMounted(() => {
window.addEventListener('resize', handleResize)
})
onUnmounted(() => {
window.removeEventListener('resize', handleResize)
if (timer) clearTimeout(timer)
})
</script>
优化后(使用 VueUse):
<script setup lang="ts">
const isDark = useDark()
const toggleDark = useToggle(isDark)
const { width: windowWidth } = useWindowSize()
const searchText = ref('')
const debouncedSearch = refDebounced(searchText, 300)
</script>
优化点:30+ 行代码缩减为 5 行,自动处理事件监听的注册/销毁,防抖逻辑内置,暗色模式自动持久化。
两个技能的协作
code-simplifier 和 vueuse-functions 可以叠加使用,在 Vue/Nuxt 项目中形成双重优化:
flowchart LR
A[编写代码] --> B[vueuse-functions<br/>替换手写实现]
B --> C[code-simplifier<br/>简化代码结构]
C --> D[高质量代码]
| 优化阶段 | 负责技能 | 关注点 |
|---|
| 函数替换 | vueuse-functions | 用 VueUse 替代手写的事件监听、存储、防抖等逻辑 |
| 结构优化 | code-simplifier | 简化嵌套、改善命名、消除冗余、统一风格 |